﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//将课堂上所讲使用函数指针数组实现转移表的代码，自己实践后，并提交代码到答案窗口。

//void menu()
//{
//	printf("******1.add*********\n");
//	printf("******2.sub*********\n");
//	printf("******3.mul*********\n");
//	printf("******4.div*********\n");
//	printf("******0.exit********\n");
//
//}
//int add()
//{
//	int x = 0;
//	int y = 0;
//	scanf("%d%d", &x, &y);
//	return x + y;
//}
//int sub()
//{
//	int x = 0;
//	int y = 0;
//	scanf("%d%d", &x, &y);
//	return x - y;
//}
//int mul()
//{
//	int x = 0;
//	int y = 0;
//	scanf("%d%d", &x, &y);
//	return x * y;
//}
//
//int div()
//{
//	int x = 0;
//	int y = 0;
//	scanf("%d%d", &x, &y);
//	return x / y;
//}
//
//
//int main()
//{
//	int input = 0;
//	int (*arr[5])() = { 0,add,sub,mul,div };
//	int ret = 0;
//	do {
//		menu();
//		printf("请输入:");
//		scanf("%d", &input);
//
//		if (input == 0)
//		{
//			printf("BYE!\n");
//
//		}
//		else if (input < 0 || input>4)
//		{
//			printf("输出错误!\n");
//		}
//		else
//		{
//			printf("请输入两个操作数:");
//			ret = arr[input]();
//			printf("%d\n", ret);
//		}
//	} while (input);
//	return 0;
//}


//找单身狗2
//一个数组中只有两个数字是出现一次，其他所有数字都出现了两次。
//编写一个函数找出这两个只出现一次的数字。


//void Dog_tow(int arr[], int sz) 
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		int n = 0;
//		int j = 0;
//		for (j = 0; j < sz; j++)
//		{
//			if (j == i)
//			{
//				continue;
//			}
//			if (arr[i] == arr[j])
//			{
//				n = 1;
//				break;
//			}
//		}
//		if (n == 0)
//		{
//			printf("%d是单身狗\n", arr[i]);
//		}
//	}
//
//}
//
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,1,2,3,4,6 };
//	Dog_tow(arr, 10);
//	return 0;
//}


//BC54 - 获得月份天数
//能被4整除的年份可能是闰年，但如果该年份还能被100整除，它必须还要能被400整除才是闰年
int Ru_year(int year) 
{
	if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
	{
		return 1;
	}
	else 
	{
		return 0;

	}
}

void Day(int (*p)(int), int year, int month)
{
	int arr[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
	int n = p(year);
	if (n == 1 && month == 2)
	{
		printf("%d年%d月有%d天", year, month, 29);
	}
	else
	{
		printf("%d年%d月有%d天", year, month, arr[month]);
	}
}
int main() 
{
	int year = 0;
	int month = 0;
	scanf("%d%d", &year, &month);
	Day(Ru_year, year, month);
	return 0;
}
